package com.fanghaoran.view.user.infoFrame;

import com.fanghaoran.controller.InfoController;
import com.fanghaoran.entity.Users;
import com.fanghaoran.view.LoginFrame;

import javax.swing.*;
import java.io.IOException;

/**
 * @Author: win11
 * @Date: 2023/03/18/9:44
 * @Description: 个人信息页面
 */
public class InfoViewPanel extends JPanel {
    public InfoViewPanel() throws Exception {
        //数据库操作获取该用户的所有信息
        Users user = (Users)new InfoController().getInfo(LoginFrame.usernameInput).getMessage();

        //页面组建
        //垂直box->外部容器
        Box vBox = Box.createVerticalBox();
        //调整在页面的位置
        vBox.add(Box.createVerticalStrut(100));

        Box box1 = Box.createHorizontalBox();
        //用户名文本提示
        JLabel usernameText = new JLabel("用户名:");
        //用户名
        JLabel username = new JLabel(user.getUsername());
        //添加到box
        box1.add(usernameText);
        box1.add(Box.createHorizontalStrut(20));
        box1.add(username);


        Box box3 = Box.createHorizontalBox();
        //手机号文本提示
        JLabel telephoneText = new JLabel("手机号:");
        //手机号
        JLabel telephone = new JLabel(user.getTelephone());
        //添加到box
        box3.add(telephoneText);
        box3.add(Box.createHorizontalStrut(20));
        box3.add(telephone);

        Box box4 = Box.createHorizontalBox();
        //昵称文本提示
        JLabel nicknameText = new JLabel("昵 称:");
        //昵称
        JLabel nickname = new JLabel(user.getNickname());
        //添加到box
        box4.add(nicknameText);
        box4.add(Box.createHorizontalStrut(20));
        box4.add(nickname);

        Box box5 = Box.createHorizontalBox();
        //性别文本提示
        JLabel genderText = new JLabel("性 别:");
        //性别
        JLabel gender = new JLabel(user.getGender());
        //添加到box
        box5.add(genderText);
        box5.add(Box.createHorizontalStrut(20));
        box5.add(gender);


        Box box7 = Box.createHorizontalBox();
        //个性签名文本提示
        JLabel signatureText = new JLabel("个性签名:");
        //个性签名
        JLabel signature = new JLabel(user.getSignature());
        //添加到box
        box7.add(signatureText);
        box7.add(Box.createHorizontalStrut(20));
        box7.add(signature);

        Box box8 = Box.createHorizontalBox();
        //按钮
        JButton edit = new JButton("编辑基本信息");
        JButton modifyPassword=new JButton("修改密码");
        //按钮添加到box
        box8.add(edit);
        box8.add(modifyPassword);
        //按钮添加点击事件
        edit.addActionListener(e -> {
                    //开启编辑页面
                    try {
                        new UpdateInfoFrame();
                    } catch (Exception ex) {
                        ex.printStackTrace();
                    }
                }
        );

        modifyPassword.addActionListener(e-> {
                //开启修改密码页面
                try {
                    new ModifyPasswordFrame(user);
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        );

        //所有的水平box添加到垂直box 并调整间距
        vBox.add(box1);
        vBox.add(Box.createVerticalStrut(20));
        vBox.add(box3);
        vBox.add(Box.createVerticalStrut(20));
        vBox.add(box4);
        vBox.add(Box.createVerticalStrut(20));
        vBox.add(box5);
        vBox.add(Box.createVerticalStrut(20));
        vBox.add(box7);
        vBox.add(Box.createVerticalStrut(20));
        vBox.add(box8);

        //添加到panel
        this.add(vBox);
    }


}
